GitHub Actions の VS Code 拡張によるバリデーションで、"Context access might be invalid" という Warning が出る場合のワークアラウンド

GitHub Actions の VS Code 拡張によるバリデーションで、"Context access might be invalid" という Warning が出る場合のワークアラウンド

Clock Icon2024.11.26

こんにちは、製造ビジネステクノロジー部の若槻です。

GitHub Actions でワークフローを実装する場合は、下記の VS Code 拡張機能を利用すると、ワークフローや Action の yml ファイルをバリデーションしてくれたり、構成変数を VS Code から管理できたりして便利です。

https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-github-actions

今回は、この GitHub Actions の VS Code 拡張によるバリデーションで、Context access might be invalid という Warning が出てしまう場合のワークアラウンドのご紹介です。

事象

下記のような環境 (environment) が可変となるジョブで構成変数 (vars) を使用しているワークフローを実装しました。

.github/workflows/sample.yml
on:
  workflow_call:
    inputs:
      environment:
        description: '環境'
        required: true
        type: string

jobs:
  job1:
    environment: ${{ inputs.environment }}
    runs-on: ubuntu-latest
    steps:
      - run: echo ${{ vars.MY_VAR_1 }}

左側のペインの通り DEVELOPMENT という環境の中に MY_VAR_1 という構成変数が追加されており、一見問題なさそうですが、エディター上では Context access might be invalid というバリデーションの警告が発生しています。

原因、ワークアラウンド

原因としては、inputs.environment が空となり環境が使用されない場合に、vars.MY_VAR_1 が未定義となるためのようです。

次のように Repository Variable にも同名の構成変数をデフォルト値またはダミー値として追加することで、警告が解消されます。

このような場合には発生しない

下記のように environment が固定されている場合には、前述のようなバリデーションの警告は発生しません。

.github/workflows/sample.yml
on: workflow_dispatch

jobs:
  job1:
    environment: DEVELOPMENT
    runs-on: ubuntu-latest
    steps:
      - run: echo ${{ vars.MY_VAR_1 }}

このことが警告の原因が分かりづらくなる一因でした。

おわりに

GitHub Actions の VS Code 拡張によるバリデーションで、Context access might be invalid という Warning が出てしまう場合のワークアラウンドのご紹介でした。

どなたかのお役に立てれば幸いです。

以上

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.